0 VALUE SPAGE
0 VALUE eMODE
0 VALUE X
0 VALUE Y

: 4. ." ...." ;
: v 118 EMIT ;
: SHOWBLK 0 0 GOTOXY ." Block:" BLK @ . ;
: PROMPT 3 20 GOTOXY ." F1=Delete    F2=Ins/Ovr   F3=Erase"
  3 21 GOTOXY        ." F4=Escape    F5=Previous  F6=Next"
  3 22 GOTOXY        ." F7=Tab       F9=Exit      ESDX=Cursor" ;
: EMODE eMODE NOT TO eMODE
  32 0 GOTOXY ." Mode:" eMODE IF ." INS" ELSE ." OVR" THEN ;

: 0RULE 2 FOR 4. v 4. 48 EMIT NEXT 4. v ;
: 1RULE 2 FOR 48 EMIT 4. v 4. NEXT 48 EMIT 4. ;

: VR 16 FOR 0 3 I + GOTOXY I DUP 10 < IF SPACE THEN . NEXT
  3 2 SPAGE IF 60 ELSE 124 THEN 16 VCHAR
  3 38 SPAGE IF 124 ELSE 62 THEN 16 VCHAR
  19 3 45 35 HCHAR ;
  
: HR PAGE SPAGE IF 3 4 3 ELSE 1 3 12 THEN
  1 GOTOXY FOR DUP . 1+ 8 SPACES NEXT 3 2 GOTOXY
  SPAGE IF 1RULE ELSE 0RULE THEN SHOWBLK VR EMODE PROMPT ;

: ED HR
  BEGIN
   KEY? CASE
    4  OF EMODE FALSE ENDOF
    15 OF FALSE ENDOF
    FALSE
   ENDCASE
  2 = UNTIL ;


